查看原文
其他

数据呈现 | 用Stata画的三维图很奇怪怎么办?

数据Seminar 2022-12-31

The following article is from Stata and Python数据分析 Author 爬虫俱乐部

本文转自公众号:Stata and Python数据分析

本文作者:尚晨曦,河南大学经济学院

导读

在实证研究中,我们经常需要画图来更直观的表示数据之间的关系,而三维图更是在此基础上超越平面,实现在立体空间上的表达,不仅更加美观,而且具有很强的视觉冲击力。比如:

然而这些美丽的立体图好像都是”别人家的孩子“,同样的命令,我们自己的三维图却长这个样子:

今天小编就带大家仔细分析一下造成如此奇怪图形的原因,进而画出漂亮的三维图~

一、命令介绍

关于使用Stata画三维图的命令有以下三个:graph3dsurfacescat3

具体命令介绍可以参考往期推文:

一步一步教你做出漂亮的三维图形

小编在这里就不再赘述了。我们今天主要使用的是graph3d这个命令,话不多说,我们从模仿大佬做的图开始吧~

二、操作演示

今天我们模仿的图为:

德国夫妻双方每月总劳动收入的预算约束(x轴代表第一劳动者的劳动收入,y轴代表第二劳动者的劳动收入,z轴代表每月可支配收入) 

来源:Jessen, Robin, Davud Rostam‐Afschar, and Viktor Steiner. "Getting the poor to work: Three welfare increasing reforms for a busy Germany." (2015).

「第一步:安装graph3d命令」

ssc install graph3d,replace

「第二步:输入数据」

use "budget_graphs3d.dta",clear

「第三步:绘制三维图」

graph3d lab_income_m y_Basic_Income_Flat_Tax lab_income_f

图形输出:

这。。。什么鬼??别着急,我们通过graph3d的一些选项来进行调整。

「第四步:美化三维图」

1.使用cuboid加上长方体框;innergrid在长方体框上添加额外的网格线;wire将数据点连接起来;colorscheme()给数据点换个颜色。

graph3d lab_income_m y_Basic_Income_Flat_Tax lab_income_f, ///
cuboid innergrid wire colorscheme(cr)

图形输出:

是不是的确有好一些了~

2.使用xang()yang()把图形旋转一下;blv使长方形的顶点用黑色小圆点显示;coord()标出长方体所有点的坐标;mark设计数据点形状;equi设计数据点距离;markeroptions(msize())设计数据点大小。

graph3d lab_income_m y_Basic_Income_Flat_Tax lab_income_f, ///
cuboid innergrid wire colorscheme(cr) xang(10) yang(292) blv ///
coord(4 5 7 8) format("%12.0fc") mark equi markeroptions(msize(1))

图形输出:

基本已经大功告成了~

3.设置标签内容、位置、角度

graph3d lab_income_m y_Basic_Income_Flat_Tax lab_income_f, ///
cuboid innergrid wire colorscheme(cr) xang(10) yang(292) blv ///
coord(4 5 7 8) format("%12.0fc") mark equi ///
markeroptions(msize(1)) xlab("Primary") ///
ylab("Monthly Household Disposable Income") zlab("Secondary") ///
xlang(355) ylang(90) zlang(30) xlpos(2) ylpos(2) zlpos(12)

图形输出:

复制完成,是不是也没有那么难呢~

三、注意事项

虽说三维图很美观,视觉上层次分明,但并不是所有的数据都适合使用三维图来描述的,如果你绘制的三维图很奇怪,在这里小编有以下几点建议和改进方法:

1.数据x、y、z中最好有两个数据所组成的点均匀遍布平面,如下图所示:

2.通过xang()yang()调整图像角度,使得图像更立体直观。

3.分别尝试Stata中graph3dsurfacescat3三个画三维图的命令,可能有不同的收获。

4.加一些命令的选项,例如加上长方体框、改变颜色,调整数据点的大小等,也是让图像更美观的好方法。

5.生成图像以后,使用图形编辑器进行微调。

今天的分享就到这里,你学会了吗?





星标⭐我们不迷路!
想要文章及时到,文末“在看”少不了!

点击搜索你感兴趣的内容吧


往期推荐


数据呈现 | 五种Pandas图表美化样式汇总

数据呈现 | Matplotlib可视化没那么难:7种常用图表最全绘制攻略来了!

数据呈现 | 你大脑喜欢的设计

数据呈现 | 这款免费插件,让Excel轻松制作酷炫图表

数据呈现 | 可视化经典:10幅精妙绝伦的科学视图

数据呈现 | 20大数据可视化工具测评






数据Seminar




这里是大数据、分析技术与学术研究的三叉路口


推荐 | 张静红
    欢迎扫描👇二维码添加关注    

点击下方“阅读全文”了解更多

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存